/*
 * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package top.continew.admin.cakerun.model.resp;

import lombok.Data;

import io.swagger.v3.oas.annotations.media.Schema;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;

import top.continew.admin.common.base.model.resp.BaseDetailResp;
import java.io.Serial;
import java.time.*;
import java.math.BigDecimal;

/**
 * 评论反馈详情信息
 *
 * @author tangyu
 * @since 2025/07/08 10:47
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "评论反馈详情信息")
public class FeedbackInfoDetailResp extends BaseDetailResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 
     */
    @Schema(description = "")
    @ExcelProperty(value = "")
    private Integer shopId;

    /**
     * 
     */
    @Schema(description = "")
    @ExcelProperty(value = "")
    private Integer accountId;

    /**
     * 反馈ID
     */
    @Schema(description = "反馈ID")
    @ExcelProperty(value = "反馈ID")
    private String feedbackId;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    @ExcelProperty(value = "用户ID")
    private Long userId;

    /**
     * 用户名
     */
    @Schema(description = "用户名")
    @ExcelProperty(value = "用户名")
    private String userName;

    /**
     * 用户头像URL
     */
    @Schema(description = "用户头像URL")
    @ExcelProperty(value = "用户头像URL")
    private String userAvatar;

    /**
     * 用户等级
     */
    @Schema(description = "用户等级")
    @ExcelProperty(value = "用户等级")
    private Integer userLevel;

    /**
     * 用户等级图标URL
     */
    @Schema(description = "用户等级图标URL")
    @ExcelProperty(value = "用户等级图标URL")
    private String userLevelIcon;

    /**
     * 是否为VIP（0/1）
     */
    @Schema(description = "是否为VIP（0/1）")
    @ExcelProperty(value = "是否为VIP（0/1）")
    private Boolean isVip;

    /**
     * 反馈内容
     */
    @Schema(description = "反馈内容")
    @ExcelProperty(value = "反馈内容")
    private String content;

    /**
     * 评分（1-5分）
     */
    @Schema(description = "评分（1-5分）")
    @ExcelProperty(value = "评分（1-5分）")
    private Integer score;

    /**
     * 精确评分（如4.5）
     */
    @Schema(description = "精确评分（如4.5）")
    @ExcelProperty(value = "精确评分（如4.5）")
    private BigDecimal accurateScore;

    /**
     * 细分评分（JSON格式）
     */
    @Schema(description = "细分评分（JSON格式）")
    @ExcelProperty(value = "细分评分（JSON格式）")
    private String subScores;

    /**
     * 反馈时间（时间戳）
     */
    @Schema(description = "反馈时间（时间戳）")
    @ExcelProperty(value = "反馈时间（时间戳）")
    private Long feedbackTime;

    /**
     * 点赞数
     */
    @Schema(description = "点赞数")
    @ExcelProperty(value = "点赞数")
    private Integer likeCount;

    /**
     * 查看数
     */
    @Schema(description = "查看数")
    @ExcelProperty(value = "查看数")
    private Integer viewCount;

    /**
     * 回复数
     */
    @Schema(description = "回复数")
    @ExcelProperty(value = "回复数")
    private Integer replyCount;

    /**
     * 是否为高质量评论（0/1）
     */
    @Schema(description = "是否为高质量评论（0/1）")
    @ExcelProperty(value = "是否为高质量评论（0/1）")
    private Boolean isHighQuality;

    /**
     * 商家名称
     */
    @Schema(description = "商家名称")
    @ExcelProperty(value = "商家名称")
    private String poiName;

    /**
     * 来源1（如“团购”）
     */
    @Schema(description = "来源1（如“团购”）")
    @ExcelProperty(value = "来源1（如“团购”）")
    private String showSource1;

    /**
     * 来源2（详细信息）
     */
    @Schema(description = "来源2（详细信息）")
    @ExcelProperty(value = "来源2（详细信息）")
    private String showSource2;

    /**
     * 投诉状态（-1表示投诉）
     */
    @Schema(description = "投诉状态（-1表示投诉）")
    @ExcelProperty(value = "投诉状态（-1表示投诉）")
    private Integer appealStatus;

    /**
     * 投诉状态名称
     */
    @Schema(description = "投诉状态名称")
    @ExcelProperty(value = "投诉状态名称")
    private String appealStatusName;

    /**
     * 是否有投诉（0/1）
     */
    @Schema(description = "是否有投诉（0/1）")
    @ExcelProperty(value = "是否有投诉（0/1）")
    private Boolean hasAppeal;

    /**
     * 业务时间
     */
    @Schema(description = "业务时间")
    @ExcelProperty(value = "业务时间")
    private LocalDate businessTime;
}